/*
*
==============================================================================
*  Name        : 
*  Part of     : Omen Game Engine
*  Description : 
*  Version     : 1.0
*
*  Copyright (c) 2013 Lauri Kortevaara.
* 
==============================================================================
*/

#pragma once

#include <IOmenAnimation.h>

namespace Omen
{
    class Animation : public Omen::IAnimation
    {
    public:
        virtual Omen_GUID classId() const;  //
        
    public: 
        OMEN_API virtual unsigned long windowHandle() const;

        OMEN_API virtual void setStartValue( Omen::Float startValue );
        OMEN_API virtual void setEndvalue( Omen::Float endValue );
        OMEN_API virtual void setDuration( Omen::Float duration );

        OMEN_API virtual Omen::Float startValue() const;
        OMEN_API virtual Omen::Float endValue() const;
        OMEN_API virtual Omen::Float duration() const;

        OMEN_API virtual Omen::Float currentValue(); /// <summary> Current 

        OMEN_API virtual void start();  /// <summary> Start the animation </summary>
        OMEN_API virtual void stop();   /// <summary> Stop the animation </summary>
        OMEN_API virtual void pause();  /// <summary> Pause the animation </summary>

        OMEN_API virtual void setEasingType( const Omen::IAnimation::EasingType& type );
        
    protected:
    private:
    };
}